# -*- coding: utf-8 -*-

# 1.编写代码求出text.txt含有python字符的行号(使用正则匹配，编码为utf-8)
import re
import traceback

with open(r"D:\python\zwx009\run_he\text.txt",mode='r',encoding='utf8') as f:
    readers = f.readlines()
    for i in range(len(readers)):
        line = str(readers[i].strip())
        res = re.search('python',line)
        if res:
            print("从第0行开始，含有python字符串的函数是：第"+str(i)+"行")

# 2.用pytest/unittest测试框架编写测试用例来测试下面的函数
# (题中x在测试用例中可自取整数，针对该函数的每个条件语句写一个测试用例并进行结果判断
# 优先使用pytest，下面的函数是测试对象。请严格审题)
# 代码在test_001.py文件


# 3.设置一个输入密码，必须包含字符串＋数字＋特殊符号(仅限#$)，
# 密码长度为8位，根据以上条件写一个函数，若输入错误密码则报异常，
# 输入正确则打印正确的密码。(函数参考正则模块和if条件语句)
import re

s = input("请输入密码：")

if len(s)==8:
    patter = r'\d{1,}[a-zA-Z]{1,}[#]{1,}||[$]{1,}'
    res = re.match(patter,s)
    if res:
        print(s)
    else:
        print("密码错误")
else:
    print("密码错误，密码长度为8位数")




# 4.假如我要在一个求任意个数之和的函数前打印一个开始，在结束后打印一个结束，请完整编写出这个装饰器(包括整个函数的编写)
def func_print(func):
    def wrapper(*args,**kwargs):
        print("开始")
        res =func(*args,**kwargs)
        print("结束")
        return res
    return wrapper

@func_print
def sum(x):
    return x+x

sum(1)










